// 发号器
// 自增ID
// function* createIdMaker() {
//   let id = 1
//   while (true) {
//     // 不需要担心死循环因为yield直接停
//     yield id++
//   }
// }

// const idMaker = createIdMaker()
// console.log(idMaker.next().value)
// console.log(idMaker.next().value)
// console.log(idMaker.next().value)
// console.log(idMaker.next().value)
// console.log(idMaker.next().value)
// 1
// 2
// 3
// 4
// 5
// -------------------------------------------------------
// 实现iterator方法
const todos = {
  life: ['吃饭', '睡觉', '打豆豆'],
  learn: ['语文', '数学', '英语'],
  work: ['摸鱼'],

  // 添加一个可迭代接口!
  // 适用于任何数据结构
  [Symbol.iterator]: function* () {
    const all = [...this.life, ...this.learn, ...this.work]
    // yield本身就有next方法 秒啊
    for (const i of all) {
      yield i
    }
  }
}
for (const i of todos) {
  console.log(i)
}
// 吃饭
// 睡觉
// 打豆豆
// 语文
// 数学
// 英语
// 摸鱼
